//===========================================================
//					xv_map
//
//	Работа с локальной картой
//===========================================================

#include "xv_map.h"
#include "es_spr.h"

// Текущая карта
cLocalMap *LocalMap;

// Отрисовка
void cLocalMap::Draw()
{
	for ( int i = 0;i < tiles.size();i++ )
		SpriteManager->DrawSprite(tiles[i]->getSprite(), tiles[i]->getX(), tiles[i]->getY(),
			tiles[i]->getX1(), tiles[i]->getY1(), tiles[i]->getWidth(), tiles[i]->getHeight());
	for ( int i = 0;i < creatures.size();i++ )
		SpriteManager->DrawSprite(creatures[i]->getSprite(), creatures[i]->getX(), creatures[i]->getY(),
			creatures[i]->getX1(), creatures[i]->getY1(), creatures[i]->getWidth(), creatures[i]->getHeight());
}

// Получение тайла по его позиции
cTile *cLocalMap::getTile(int x, int y)
{
	for ( int i = 0;i < tiles.size();i++ )
		if ( (x>=tiles[i]->getX()) && (y>=tiles[i]->getY())
			&& (x<tiles[i]->getX()+tiles[i]->getWidth()) && (y<tiles[i]->getY()+tiles[i]->getHeight()) )
			return tiles[i];
	return false;
}
// Получение существа по его позиции
cCreature *cLocalMap::getCreature(int x, int y)
{
	for (int i = 0;i < creatures.size();i++ )
		if ( (x>=creatures[i]->getX()) && (y>=creatures[i]->getY())
			&& (x<creatures[i]->getX()+creatures[i]->getWidth()) && (y<creatures[i]->getY()+creatures[i]->getHeight()) )
			return creatures[i];
	return false;
}

// Получение ширины карты
int cLocalMap::getWidth()
{
	return width;
}
// Получение высоты карты
int cLocalMap::getHeight()
{
	return height;
}
// Получение названия карты
string cLocalMap::getName()
{
	return name;
}